package com.ruoyi.system.domain.dao;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.eic.framework.core.annotation.InsertTime;
import com.eic.framework.core.annotation.InsertUser;
import com.eic.framework.core.annotation.UpdateTime;
import com.eic.framework.core.annotation.UpdateUser;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 岗位信息对象 sys_post
 * 
 * @author 尹国春
 * @date 2022-07-25
 */
@ApiModel("岗位信息对象")
@TableName("sys_post")
public class SysPost implements Serializable
{
    private static final long serialVersionUID = 1L;

    /**  */
    @ApiModelProperty(value = "主键ID")
    @TableId(value = "post_id",type = IdType.ASSIGN_ID)
    private String postId;

    /** 岗位编码 */
    @Excel(name = "岗位编码")
    @ApiModelProperty(value = "岗位编码")
    @TableField("post_code")
    private String postCode;

    /** 岗位名称 */
    @Excel(name = "岗位名称")
    @ApiModelProperty(value = "岗位名称")
    @TableField("post_name")
    private String postName;

    /** 显示顺序 */
    @Excel(name = "显示顺序")
    @ApiModelProperty(value = "显示顺序")
    @TableField("post_sort")
    private Long postSort;

    /** 部门状态（0正常 1停用） */
    @ApiModelProperty(value = "部门状态（0正常 1停用）")
    @TableField("status")
    private String status;

    /** 创建者 */
    @ApiModelProperty(hidden = true)
    @TableField("create_by")
    @InsertUser
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty(hidden = true)
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @InsertTime
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty(hidden = true)
    @TableField("update_by")
    @UpdateUser
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty(hidden = true)
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @UpdateTime
    private Date updateTime;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    @TableField("remark")
    private String remark;

    public SysPost setPostId(String postId)
    {
        this.postId = postId;
        return this;
    }
    public String getPostId()
    {
        return postId;
    }
    public SysPost setPostCode(String postCode)
    {
        this.postCode = postCode;
        return this;
    }
    public String getPostCode()
    {
        return postCode;
    }
    public SysPost setPostName(String postName)
    {
        this.postName = postName;
        return this;
    }
    public String getPostName()
    {
        return postName;
    }
    public SysPost setPostSort(Long postSort)
    {
        this.postSort = postSort;
        return this;
    }
    public Long getPostSort()
    {
        return postSort;
    }
    public SysPost setStatus(String status)
    {
        this.status = status;
        return this;
    }
    public String getStatus()
    {
        return status;
    }
    public SysPost setCreateBy(String createBy)
    {
        this.createBy = createBy;
        return this;
    }
    public String getCreateBy()
    {
        return createBy;
    }
    public SysPost setCreateTime(Date createTime)
    {
        this.createTime = createTime;
        return this;
    }
    public Date getCreateTime()
    {
        return createTime;
    }
    public SysPost setUpdateBy(String updateBy)
    {
        this.updateBy = updateBy;
        return this;
    }
    public String getUpdateBy()
    {
        return updateBy;
    }
    public SysPost setUpdateTime(Date updateTime)
    {
        this.updateTime = updateTime;
        return this;
    }
    public Date getUpdateTime()
    {
        return updateTime;
    }
    public SysPost setRemark(String remark)
    {
        this.remark = remark;
        return this;
    }
    public String getRemark()
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.SHORT_PREFIX_STYLE)
            .append("postId", getPostId())
            .append("postCode", getPostCode())
            .append("postName", getPostName())
            .append("postSort", getPostSort())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
